﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//class Date
//{
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	// void Print(const Date* const this) const
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//
//	Date* operator&()
//	{
//		return nullptr;
//	}
//
//	const Date* operator&() const
//	{
//		return this;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	// 这⾥⾮const对象也可以调⽤const成员函数是⼀种权限的缩⼩ 
//	Date d1(2024, 7, 5);
//	d1.Print();
//
//	const Date d2(2024, 8, 5);
//	d2.Print();
//
//	cout << &d1 << endl;
//	cout << &d2 << endl;
//	return 0;
//}
//class Time
//{
//public:
//	Time(int hour = 1)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//
//
//class Date
//{
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//		: _year(year + 3)
//		, _month(month - 1)
//		, _day(day * 2)
//		, x(year)
//		, sencond(10)
//		, t1(1)
//	{}
//	void Print()
//	{
//		cout << _year << " " << _month << " " << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//	int& x;
//	const int sencond;
//	Time t1;
//};
//
//int main()
//{
//	Date d1;
//	d1.Print();
//	return 0;
//}
//#include<iostream>
//using namespace std;
//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//class Date
//{
//public:
//	Date()
//		:_month(2)
//	{
//		cout << "Date()" << endl;
//	}
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	int _year = 1;
//	int _month = 1;
//	int _day;
//	Time _t = 1;
//	const int _n = 1;
//	int* _ptr = (int*)malloc(12);//缺省值可以是表达式
//};
//int main()
//{
//	Date d1;
//	d1.Print();
//	return 0;
//}
//class A
//{
//public:
//	A(int a)
//		:_a1(a)
//		,_a2(_a1)
//	{}
//	void Print() {
//		cout << _a1 << " " << _a2 << endl;
//	}
//private:
//	int _a2 = 2;
//	int _a1 = 2;
//};
//int main()
//{
//	A aa(1);
//	aa.Print();
//}
// 实现⼀个类，计算程序中创建出了多少个类对象？ 
//class A
//{
//public:
//	A()
//	{
//		++_scount;
//	}
//	A(const A& t)
//	{
//		++_scount;
//	}
//	static int GetCount()
//	{
//		return _scount;
//	}
//private:
//	static int _scount;
//};
//
//int A::_scount = 0;
//
//int main()
//{
//	cout << A::GetCount() << endl;
//	A a1, a2;
//	A a3(a1);
//	cout << A::GetCount() << endl;
//	cout << a1.GetCount() << endl;
//	return 0;
//}
class Sum
{
public:
    Sum()
    {
        _ret += _i;
        ++_i;
    }
    static int GetRet()
    {
        return _ret;
    }
private:
    static int _i;
    static int _ret;
};

int Sum::_i = 1;
int Sum::_ret = 0;

class Solution {
public:
    int Sum_Solution(int n) {
        // 变⻓数组 
        Sum arr[n];
        return Sum::GetRet();
    }
};